1. Field of the Invention
The present invention relates generally to the communication between computer applications, and in particular, to a method, apparatus, and article of manufacture for communicating between disconnected applications in a web browser.
2. Description of the Related Art
Typically, when ACTIVEX™ (hereinafter ActiveX) controls are used within an HTML (hypertext markup language) page, there is a single “controlling” application. For example, the web browser displaying the HTML page may be the application that “controls” the use of an ActiveX control. However, there may be a need for an ActiveX control to communicate with another application (referred to as a second application) to perform tasks. However, the “controlling” application may be completely (and intentionally) disconnected from the second application. Accordingly, what is needed is a mechanism that allows and provides the ability for an ActiveX control within a “controlling” application to communicate with an external second application. The problems in the prior art may be better understood by describing ActiveX controls and prior art applications that utilize ActiveX controls.
ActiveX controls are software modules based on Microsoft's™ Component Object Model (COM) architecture. The COM architecture allows a “controlling” program (such as a web browser) to add functionality by calling a component (i.e., an ActiveX control) that intermingles with and appears as a standard part of the “controlling” program. For example, user interface functions, such as a toolbar, may be added, or a web page may be turned into a software page that can perform similar to other programs launched from a server.
As described above, an ActiveX control may need to communicate with an application other than the control's controlling application. An example of such a desire to communicate exists in the STREAMLINE™ (hereinafter Streamline) product on a PROJECTPOINT™ (hereinafter ProjectPoint) platform, both of which are available from the assignee of the present invention. Streamline is a hosted online collaboration service for the manufacturing industry. Using Streamline, users of an entire design chain may communicate with each other and access digital design information. The Streamline product executes on the ProjectPoint platform (also referred to as the Buzzsaw™ platform). ProjectPoint is a secure, online collaboration and project management service that keeps project teams connected and allows the storage, management, and sharing of project documents from any Internet connection.
ActiveX controls in Streamline (referred to as “client controls”) may need to communicate with the ProjectPoint application to perform tasks such as uploading a markup file to the project hosting environment. However, the two applications (i.e., Streamline and ProjectPoint) are intentionally completely disconnected from each other. In this regard, ProjectPoint does not know that the Streamline controls have been created, and the Streamline controls do not know that they are being used within the ProjectPoint environment.
A further problem with the prior art exits if multiple programs are dependent on each other for desired operations. With such dependency, one program may have an ActiveX control that utilizes a service/attribute of a second application. For example, a Streamline client control hosted in a particular environment may be able to save a file (e.g., a markup file) to a server. In this example, the Streamline code that enables such behavior may be specific to the particular environment.
However, if the second application or particular environment is changed, the ActiveX control may not be able to execute properly. Continuing with the example above, if the particular environment is replaced (e.g., with ProjectPoint), the new environment may not allow a readily accessible interface for the desired behaviors (e.g., to save the markup file to the server). Accordingly, the Streamline client controls may not properly execute in a new environment.
To address this gap in functionality, a general purpose mechanism for communication between a project hosting environment (e.g., ProjectPoint) and ActiveX controls (e.g., Streamline client controls) (within an HTML, page) is needed.